# -*-coding:utf-8-*-
# Mixxin 开发模式，一种将多个类中的功能单元进行组合的利用方式。
# 通常Mixxin并不作为任何类的基类，也不关心与什么类一起使用，而是在运行时动态的同其他零散的类一起组合作用

# 特点：
# 可以在不修改任何源代码的情况下，对已有类进行扩展
# 可以保证组件的划分
# 可以根据需要，使用已有的功能进行组合，来实现“新”类
# 很好的避免了类继承的局限性，因为新的业务需要可能就需要创建新的子类

# 多继承
class A:
    def get_a(self):
        print
        'a'


class B:
    def get_b(self):
        print
        'b'


class C(A, B):
    pass


c = C()
# print(c.get_a())
# print(c.get_b())

# __bases__ 多继承的实现会创建新类，希望给类A添加类B的功能时，也可以利用python的元编程特性

A.__bases__ += (B,)
a = A()
a.get_b()
# __bases__也是继承的机制，因为__bases__属性存储了类的基类。因此多继承的方法也可以这样实现：
class C:
    pass


C.__bases__ += (A, B)
